﻿using CoreLib;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace CoreLibTestProject
{
    
    
    /// <summary>
    ///This is a test class for CMaterialTest and is intended
    ///to contain all CMaterialTest Unit Tests
    ///</summary>
    [TestClass()]
    public class CMaterialTest
    {


        private TestContext testContextInstance;

        /// <summary>
        ///Gets or sets the test context which provides
        ///information about and functionality for the current test run.
        ///</summary>
        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }

        #region Additional test attributes
        // 
        //You can use the following additional attributes as you write your tests:
        //
        //Use ClassInitialize to run code before running the first test in the class
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //Use ClassCleanup to run code after all tests in a class have run
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //Use TestInitialize to run code before running each test
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //Use TestCleanup to run code after each test has run
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion


        /// <summary>
        ///A test for CMaterial Constructor
        ///</summary>
        [TestMethod()]
        public void CMaterialConstructorTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter);
            Assert.Inconclusive("TODO: Implement code to verify target");
        }

        /// <summary>
        ///A test for Draw
        ///</summary>
        [TestMethod()]
        public void DrawTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter); // TODO: Initialize to an appropriate value
            ModelMesh mesh = null; // TODO: Initialize to an appropriate value
            Matrix world = new Matrix(); // TODO: Initialize to an appropriate value
            target.Draw(mesh, world);
            Assert.Inconclusive("A method that does not return a value cannot be verified.");
        }

        /// <summary>
        ///A test for InitShader
        ///</summary>
        [TestMethod()]
        [DeploymentItem("CoreLib.dll")]
        public void InitShaderTest()
        {
            PrivateObject param0 = null; // TODO: Initialize to an appropriate value
            CMaterial_Accessor target = new CMaterial_Accessor(param0); // TODO: Initialize to an appropriate value
            Effect Shader = null; // TODO: Initialize to an appropriate value
            target.InitShader(Shader);
            Assert.Inconclusive("A method that does not return a value cannot be verified.");
        }

        /// <summary>
        ///A test for SetBasicProperties
        ///</summary>
        [TestMethod()]
        public void SetBasicPropertiesTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter); // TODO: Initialize to an appropriate value
            Color color = new Color(); // TODO: Initialize to an appropriate value
            float specularPower = 0F; // TODO: Initialize to an appropriate value
            float specularIntensity = 0F; // TODO: Initialize to an appropriate value
            target.SetBasicProperties(color, specularPower, specularIntensity);
            Assert.Inconclusive("A method that does not return a value cannot be verified.");
        }

        /// <summary>
        ///A test for SetPreset
        ///</summary>
        [TestMethod()]
        public void SetPresetTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter); // TODO: Initialize to an appropriate value
            object Preset = null; // TODO: Initialize to an appropriate value
            bool expected = false; // TODO: Initialize to an appropriate value
            bool actual;
            actual = target.SetPreset(Preset);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for SetTexturedMaterial
        ///</summary>
        [TestMethod()]
        public void SetTexturedMaterialTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter); // TODO: Initialize to an appropriate value
            Color color = new Color(); // TODO: Initialize to an appropriate value
            float specularPower = 0F; // TODO: Initialize to an appropriate value
            float specularIntensity = 0F; // TODO: Initialize to an appropriate value
            string diffuseTextureName = string.Empty; // TODO: Initialize to an appropriate value
            string specularTextureName = string.Empty; // TODO: Initialize to an appropriate value
            float textureUReps = 0F; // TODO: Initialize to an appropriate value
            float textureVReps = 0F; // TODO: Initialize to an appropriate value
            target.SetTexturedMaterial(color, specularPower, specularIntensity, diffuseTextureName, specularTextureName, textureUReps, textureVReps);
            Assert.Inconclusive("A method that does not return a value cannot be verified.");
        }

        /// <summary>
        ///A test for Color
        ///</summary>
        [TestMethod()]
        public void ColorTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter); // TODO: Initialize to an appropriate value
            Color expected = new Color(); // TODO: Initialize to an appropriate value
            Color actual;
            target.Color = expected;
            actual = target.Color;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for DiffuseTexture
        ///</summary>
        [TestMethod()]
        public void DiffuseTextureTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter); // TODO: Initialize to an appropriate value
            string expected = string.Empty; // TODO: Initialize to an appropriate value
            string actual;
            target.DiffuseTexture = expected;
            actual = target.DiffuseTexture;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for MaterialShader
        ///</summary>
        [TestMethod()]
        public void MaterialShaderTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter); // TODO: Initialize to an appropriate value
            Effect expected = null; // TODO: Initialize to an appropriate value
            Effect actual;
            target.MaterialShader = expected;
            actual = target.MaterialShader;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for NumberOfLights
        ///</summary>
        [TestMethod()]
        public void NumberOfLightsTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter); // TODO: Initialize to an appropriate value
            int expected = 0; // TODO: Initialize to an appropriate value
            int actual;
            target.NumberOfLights = expected;
            actual = target.NumberOfLights;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for SpecularIntensity
        ///</summary>
        [TestMethod()]
        public void SpecularIntensityTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter); // TODO: Initialize to an appropriate value
            float expected = 0F; // TODO: Initialize to an appropriate value
            float actual;
            target.SpecularIntensity = expected;
            actual = target.SpecularIntensity;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for SpecularPower
        ///</summary>
        [TestMethod()]
        public void SpecularPowerTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter); // TODO: Initialize to an appropriate value
            float expected = 0F; // TODO: Initialize to an appropriate value
            float actual;
            target.SpecularPower = expected;
            actual = target.SpecularPower;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for SpecularTexture
        ///</summary>
        [TestMethod()]
        public void SpecularTextureTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter); // TODO: Initialize to an appropriate value
            string expected = string.Empty; // TODO: Initialize to an appropriate value
            string actual;
            target.SpecularTexture = expected;
            actual = target.SpecularTexture;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for TextureUReps
        ///</summary>
        [TestMethod()]
        public void TextureURepsTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter); // TODO: Initialize to an appropriate value
            float expected = 0F; // TODO: Initialize to an appropriate value
            float actual;
            target.TextureUReps = expected;
            actual = target.TextureUReps;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for TextureVReps
        ///</summary>
        [TestMethod()]
        public void TextureVRepsTest()
        {
            Game gameparameter = null; // TODO: Initialize to an appropriate value
            CMaterial target = new CMaterial(gameparameter); // TODO: Initialize to an appropriate value
            float expected = 0F; // TODO: Initialize to an appropriate value
            float actual;
            target.TextureVReps = expected;
            actual = target.TextureVReps;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
    }
}
